home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / PublicDomain / Goldies / PolyEd2 / Macros / center.ped < prev    next >
Text File  |  1999-11-08  |  2KB  |  60 lines

  1. /*
  2. ** $VER: empty.rexx 2.0 (5.3.95) written by Robert Brandner
  3. **
  4. ** This centers the current line according to the current
  5. ** right-border width.
  6. **
  7. */
  8.  
  9. OPTIONS RESULTS
  10.  
  11. OPTIONS FAILAT 11                           /* ignore warnings          */
  12. SIGNAL ON SYNTAX                            /* ensure clean exit        */
  13. SIGNAL ON FAILURE
  14. SIGNAL ON BREAK_C                            /* no label->syntax->exit    */
  15.  
  16. if (LEFT(ADDRESS(), 6) ~= "POLYED") then do
  17.     if SHOW("Ports", "POLYED.1") then
  18.         address 'POLYED.1'
  19.     else do
  20.         say "PolyEd is not running!"
  21.         exit
  22.     end
  23. end
  24.  
  25. 'LOCKGUI'
  26.  
  27. /*----- begin of custom code area --------------------------------------*/
  28.  
  29. 'GETCURSORPOS STEM CPOS.'                    /* get cursorposition        */
  30. 'GETLINE VAR LINE'                            /* get current line            */
  31. 'GETATTR APPLICATION FIELD VAR_RIGHTBORDER VAR WIDTH'    /* width        */
  32.  
  33. /* strip leading and trailing spaces and center the remaining text
  34. ** according to the demanded width (which is quite easy thanks to Rexx)
  35. */
  36. LINE = strip(LINE, 'B')
  37. if length(LINE) <= WIDTH then do
  38.     LINE = center(LINE, WIDTH)
  39.     LINE = strip(LINE, 'T')            /* remove spaces added by center    */
  40.     'POSITION SOL'                            /* go to start of line         */
  41.     'DELETE EOL'                            /* clear line                 */
  42.     'TEXT' TEXT LINE                        /* insert centered line        */
  43.     'GOTOCOLUMN' CPOS.COLUMN                /* reset cursor-position    */
  44. end
  45.  
  46. /*----- end of custom code area ----------------------------------------*/
  47.  
  48. 'UNLOCKGUI'                                    /* clean exit                 */
  49. EXIT
  50.  
  51. SYNTAX:                                     /* ARexx error...           */
  52.  
  53. say "Error line" SIGL ":" ERRORTEXT(RC)     /* report it...             */
  54. 'UNLOCKGUI'                                 /* Unlock GUI!              */
  55. EXIT                                        /* exit                     */
  56.  
  57. FAILURE:
  58. 'UNLOCKGUI'                                 /* Unlock GUI!              */
  59. EXIT                                        /* exit                     */
  60.